package com.baox.agridata.synchronous.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class DateUtil {

    public static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


    public static SimpleDateFormat dateFileNameFormat = new SimpleDateFormat("yyyyMMdd");

    public static SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");

    public static SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");


    public static String dateToString(Date date) {
        String s = dateFormat.format(date);
        return s;
    }


    public static String dateToMinute(Date date) {
        String s = dateFormat1.format(date);
        return s;
    }


    public static String dateCoverYearMonthDay() {
        String s = dateFormat2.format(new Date());
        return s;
    }

    public static String longToString(long date) {

        Date date1 = new Date(date);

        String strDate = dateFormat.format(date1);

        return strDate;
    }


    public static String plusFiveMinutes(String timeStr) {
        // 定义时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        // 将字符串解析为LocalDateTime对象
        LocalDateTime time = LocalDateTime.parse(timeStr, formatter);
        // 加五分钟
        LocalDateTime newTime = time.plusMinutes(5);
        // 将新时间格式化为字符串
        String newTimeStr = newTime.format(formatter);
//        // 输出结果
//        System.out.println("原时间：" + timeStr);
//        System.out.println("新时间：" + newTimeStr);
        return newTimeStr;
    }


    /**
     * 在现有的时间上加五分钟
     *
     * @return
     */
    public static String plusFiveMinutesPlus() {
        String s = dateFormat1.format(new Date()) + ":00";
        // 定义时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        // 将字符串解析为LocalDateTime对象
        LocalDateTime time = LocalDateTime.parse(s, formatter);
        // 加五分钟
        LocalDateTime newTime = time.plusMinutes(5);
        // 将新时间格式化为字符串
        String newTimeStr = newTime.format(formatter);
        return newTimeStr;
    }


    /**
     * 在现有的时间上加五分钟
     *
     * @return
     */
    public static String plusTenFiveMinutesPlus() {
        String s = dateFormat1.format(new Date()) + ":00";
        // 定义时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        // 将字符串解析为LocalDateTime对象
        LocalDateTime time = LocalDateTime.parse(s, formatter);
        // 加十五分钟
        LocalDateTime newTime = time.plusMinutes(15);
        // 将新时间格式化为字符串
        String newTimeStr = newTime.format(formatter);
        return newTimeStr;
    }


    public static long dateStrConvertLong(String dateStr) {
        try {
            Date date = dateFormat.parse(dateStr);
            long timestamp = date.getTime();
            return timestamp;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return 0;
    }


    public static String jianFiveMinutes(String timeStr) {
        // 定义时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        // 将字符串解析为LocalDateTime对象
        LocalDateTime time = LocalDateTime.parse(timeStr, formatter);
        // 加五分钟
        LocalDateTime newTime = time.minusMinutes(5);
        // 将新时间格式化为字符串
        String newTimeStr = newTime.format(formatter);
//        // 输出结果
//        System.out.println("原时间：" + timeStr);
//        System.out.println("新时间：" + newTimeStr);
        return newTimeStr;
    }


    public static void main(String[] args) {
        System.out.println(plusFiveMinutesPlus());
    }


}
